home *** CD-ROM | disk | FTP | other *** search
- Path: ix.netcom.com!news
- From: Bradd W. Szonye <bradds@ix.netcom.com>
- Newsgroups: comp.lang.c++
- Subject: RE: Need Professional advice (by a beginner)
- Date: 19 Apr 1996 10:11:48 GMT
- Organization: Netcom
- Message-ID: <01bb2dd8.e90315e0$c6c2b7c7@Zany.localhost>
- References: <316898E2.6754@netvision.net.il> <4kcg7k$rfm@nntp1.best.com> <4ki875$jmn@reader2.ix.netcom.com>
- NNTP-Posting-Host: det-mi6-06.ix.netcom.com
- X-NETCOM-Date: Fri Apr 19 5:11:48 AM CDT 1996
- X-Newsreader: Microsoft Internet News
-
-
- On Thursday, April 11, 1996, Giuliano Carlini wrote...
- > >Bruce Klaydman <bruce@netvision.net.il> wrote:
- > >
- > >>Need Professional advice (by a beginner).
- > >>I want to be a professional programmer my question is
- > >>can I do it on my own (without taking any courses) ?
- >
- > It is definitely possible. The question is whether it is easier. The
- > language you write in isn't what makes you a professional. It's knowing
- > what to do with it.
-
- Agreed.
-
- > Number one is a book on Algorithms and Data Structures. All of CS is
- > just algorithms and data structures. Get started right, and learn this
- > first. For learning, stay away from Knuth's Art of Programming. While
- > my feelings on it are mixed as a general reference, it is definitely
- > not a book for a beginner. It's all written in a make believe assembly
- > language. You spend 90% of the time translating the low level assembler
- > to what is intended at the high level. I hope I don't get toasted TOO
- > bad for this heresy.
-
- Start with Robert Sedgewick's "Algorithms" (Addison-Wesley) for this
- stuff. It's got versions out in Pascal, C, and C++. I consider myself an
- expert with a strong background in theory, and I find Knuth nearly
- impossible to read.
-
- > I'm keen on everyone knowing a little about compilers. Now, very few of
- > us will end up working with them, but it is amazing how often I find
- > myself writing little parsers, symbol tables, semantic analyzers, code
- > generators, etc.
-
- > Ditto about operating systems. You'll learn about mutual exclusion,
- > tasking, file systems, virtual memory, and all sorts of things you'll
- > need in the real world of programming.
-
- > Theory of computation. The formal math that underlies our craft. You
- > won't use it directly very often, but it had a profound affect on how I
- > think about problems.
-
- You can be a good programmer without this stuff, but you'll want to learn
- it eventually. The stuff is hard to pick up without going to college
- though. A good compiler book, if you need it, is "Compiler Design in C" by
- Holub.
-
- > College Algebra. Another subject you won't use at all, but it is
- > amazing how an understanding of it illuminates the tools you use, and
- > the systems you produce.
- >
- > Join and subscribe to the Association of Computing machinery -
- > www.acm.org. The industry rags are ok, but the journals are where new
- > results first come out. Anything I've seen in Doctor Dobb's or whatever
- > I've always seen years earlier in a journal.
- >
- > I'd suggest learning using Eiffle rather than C++. Most of us need C++
- > to live off of, but Eiffle is vastly better. Once you've learned the
- > right way, most of it carries over to C++. The problem with C++ is that
- > there are 30,000 ways to do anything, and 28,000 of them are wrong. You
- > might hit on the right way without experience, but it isn't likely.
- > Eiffle makes it easier to do things right. Then once you know it, you
- > can use C++ with discipline.
-
- Pick a popular language to learn first. BASIC and C++ are both
- "marketable" language skills, not too hard to learn, not too hard to find
- good intro books on. I'd say avoid Pascal, with one exception. There's a
- stellar book called "C as a Second Language (for Native Speakers of
- Pascal)" by Mueldner and Steele. If you happen to learn Pascal, that's a
- wonderful book for migrating to C. It also makes you realize how much
- different languages are alike.
-
- And if you want to learn C++, you don't need to know C first. It will only
- teach you bad habits.
-
- > Lastly, you've got to write a lot of bad code before you get good.
- > Write and rewrite. Go back and look at what you did a year ago, and see
- > if you can do it better. And don't be just a coder. Think about the
- > overall structure and design of you programs.
- >
- > g
- >
-
- Experience is the key.
- A good shortcut to programming experience is "Code Complete" by Steve
- McConnell (Microsoft Press). It also gives a good overview of several
- languages, and programming in general. Learn a little programming, then
- buy that book.
-
-
-